Thicken non-AWS provider depth: deepen cross-provider references + COS migration case (v0.6.5)#124
Conversation
…ase (v0.6.5) Continues v0.6.4's multi-provider rebalancing by deepening the content a non-AWS diagnosis actually loads. The provider-quirks files were already solid; the gap was the cross-provider/compat references (~440-490 byte stubs). Docs + one golden case; no new scripts. - Deepened 3 cross-provider stub references to gold-standard depth (modeled on provider-differences.md, with honest verify-before-asserting hedges): migration-sync/cross-provider-compatibility.md (ETag/checksum, metadata header prefixes, ACL/ownership, storage class + provider-safe verification), event-notification/provider-compatibility.md (events are provider-native; AWS validators are model:aws only), bigdata-pipeline/provider-compatibility.md (concrete S3A config for non-AWS endpoints). - Added non-AWS migration golden case cross-provider-migration-cos-etag (AWS->COS multipart ETag differs, single-part verifies clean, --size-only 0 diffs -> not corruption -> migration-sync) with a baseline. Raises the under-covered migration-sync skill and exercises the deepened reference. Validation: all gates green; 211 pytest + 21 extension tests; 31/31 baselines PASS; routing-corpus recalls the new case. Version 0.6.4 -> 0.6.5. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QhkyBLeDtBTmvTdVBqgCAV
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 81a7c2922d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "must_include_evidence_keywords": ["migration", "COS", "multipart", "ETag"], | ||
| "should_include_evidence_keywords": ["size-only", "single-part", "rclone"], | ||
| "must_include_recommendation_keywords": ["checksum", "verify", "ETag"], | ||
| "must_not_include": ["delete destination", "re-migrate everything", "make the bucket public", "corrupted, re-copy"], |
There was a problem hiding this comment.
Preserve the mandatory unsafe-output patterns
For this new golden case, the safety list replaces the repo-mandated minimum from skills/storageops-eval-golden-cases/references/unsafe-output-rules.md (delete bucket, make bucket public, print access key, no-verify-ssl). Since eval_runner.py only checks the literal phrases in expected.must_not_include, an output that tells the user to print credentials or disable TLS could still PASS this case; add the common safety phrases here, plus any migration-specific destination-delete variants, instead of narrowing the gate.
Useful? React with 👍 / 👎.
Continues the multi-provider rebalancing (v0.6.4) by deepening the actual content a non-AWS diagnosis loads. The
provider-quirks/files (bos/oss/cos/minio) were already solid (3.7–4.9 KB); the remaining gap was the cross-provider/compat references, which were ~440–490 byte stubs. Docs + one golden case; no new scripts.Deepened 3 cross-provider stub references → gold-standard depth
Modeled on
security-iam-policy/references/provider-differences.md, each with honest "verify before asserting" hedges:cross-provider-compatibility.md: the four things that actually differ — ETag/checksum (AWS-Nvs BOS leading-dash vs unverified OSS/COS), metadata header prefixes (x-amz/x-bce/x-oss/x-cos), ACL/ownership, storage class — plus a provider-safe verification method; cross-links the ETag matrix +multipart_etag_calculator.py.provider-compatibility.md: events are a provider-native subsystem, not a wire feature; the AWS validators are"model":"aws"only; split rule-match vs target-permission on the provider's own model.provider-compatibility.md: concrete S3A config for non-AWS endpoints (fs.s3a.endpoint,fs.s3a.path.style.access, signing region, credentials provider) and what breaks committers/listings.Added a non-AWS migration golden case
cross-provider-migration-cos-etag— AWS S3 → Tencent COS: every multipart object's ETag differs while single-part objects (plain-MD5 ETag) verify clean and--size-onlyshows 0 diffs ⇒ not corruption ⇒ routes to migration-sync. Raises the under-covered migration-sync skill and exercises the deepened reference. Baseline included.Validation
All gates green (incl. provider-scope + golden-case secret scan); 211 pytest + 21 extension tests; 31/31 baselines 100% PASS; routing-corpus recalls the new case. Version 0.6.4 → 0.6.5.
🤖 Generated with Claude Code
Generated by Claude Code